package co.baiku.boot.response;

import org.apache.commons.beanutils.BeanUtils;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Map;

/**
 * 企业付款返回信息
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "xml")//根元素为xml
public class WeixinCompanyPayResponse {
    /**
     * SUCCESS/FAIL 此字段是通信标识，非交易标识，交易是否成功需要查看result_code来判断
     */
    private String return_code;
    /**
     * 返回信息，如非空，为错误原因签名失败参数格式校验错误
     */
    private String return_msg;
    /**
     * 申请商户号的appid或商户号绑定的appid（企业号corpid即为此appId）
     */
    private String mch_appid;
    /**
     * 微信支付分配的商户号
     */
    private String mchid;
    /**
     * 随机字符串，不长于32位
     */
    private String nonce_str;
    /**
     * SUCCESS/FAIL，注意：当状态为FAIL时，存在业务结果未明确的情况，所以如果状态FAIL，请务必再请求一次查询接口[请务必关注错误代码（err_code字段），通过查询查询接口确认此次付款的结果。]，以确认此次付款的结果。
     */
    private String result_code;
    /**
     * 错误码信息，注意：出现未明确的错误码时（SYSTEMERROR等）[出现系统错误的错误码时（SYSTEMERROR），请务必用原商户订单号重试，或通过查询接口确认此次付款的结果。]，请请务必再请求一次查询接口，以确认此次付款的结果。
     */
    private String err_code;
    /**
     * 结果信息描述
     */
    private String err_code_des;
    /**
     * 商户订单号，需保持历史全局唯一性(只能是字母或者数字，不能包含有符号)
     */
    private String partner_trade_no;
    /**
     * 企业付款成功，返回的微信订单号
     */
    private String payment_no;
    /**
     * 企业付款成功时间
     */
    private String payment_time;

    public WeixinCompanyPayResponse() {
    }

    public WeixinCompanyPayResponse(Map<String, String> response) throws Exception {
        BeanUtils.populate(this, response);
    }

    public String getReturn_code() {
        return return_code;
    }

    public void setReturn_code(String return_code) {
        this.return_code = return_code;
    }

    public String getReturn_msg() {
        return return_msg;
    }

    public void setReturn_msg(String return_msg) {
        this.return_msg = return_msg;
    }

    public String getMch_appid() {
        return mch_appid;
    }

    public void setMch_appid(String mch_appid) {
        this.mch_appid = mch_appid;
    }

    public String getMchid() {
        return mchid;
    }

    public void setMchid(String mchid) {
        this.mchid = mchid;
    }

    public String getNonce_str() {
        return nonce_str;
    }

    public void setNonce_str(String nonce_str) {
        this.nonce_str = nonce_str;
    }

    public String getResult_code() {
        return result_code;
    }

    public void setResult_code(String result_code) {
        this.result_code = result_code;
    }

    public String getErr_code() {
        return err_code;
    }

    public void setErr_code(String err_code) {
        this.err_code = err_code;
    }

    public String getErr_code_des() {
        return err_code_des;
    }

    public void setErr_code_des(String err_code_des) {
        this.err_code_des = err_code_des;
    }

    public String getPartner_trade_no() {
        return partner_trade_no;
    }

    public void setPartner_trade_no(String partner_trade_no) {
        this.partner_trade_no = partner_trade_no;
    }

    public String getPayment_no() {
        return payment_no;
    }

    public void setPayment_no(String payment_no) {
        this.payment_no = payment_no;
    }

    public String getPayment_time() {
        return payment_time;
    }

    public void setPayment_time(String payment_time) {
        this.payment_time = payment_time;
    }
}
